package com.freak.neteasecloudmusic.modules.find.recommend.base.fragment;

import com.freak.httphelper.ApiCallback;
import com.freak.httphelper.HttpMethods;
import com.freak.httphelper.RxPresenter;
import com.freak.httphelper.SubscriberCallBack;
import com.freak.neteasecloudmusic.app.api.ApiService;
import com.freak.neteasecloudmusic.commom.constants.Constants;
import com.freak.neteasecloudmusic.modules.find.recommend.base.fragment.entity.RankingListEntity;
import com.freak.neteasecloudmusic.net.log.LogUtil;
import com.freak.neteasecloudmusic.utils.ToastUtil;
import com.google.gson.Gson;

import io.reactivex.Observable;

public class RankingListPresenter extends RxPresenter<RankingListContract.View> implements RankingListContract.Presenter {
    private ApiService mApiService = HttpMethods.getInstance().create(ApiService.class);

    /**
     * @param idx "0": 云音乐新歌榜,
     *            <p>
     *            "1": 云音乐热歌榜,
     *            <p>
     *            "2": 网易原创歌曲榜,
     *            <p>
     *            "3": 云音乐飙升榜,
     *            <p>
     *            "4": 云音乐电音榜,
     *            <p>
     *            "5": UK排行榜周榜,
     *            <p>
     *            "6": 美国Billboard周榜
     *            <p>
     *            "7": KTV嗨榜,
     *            <p>
     *            "8": iTunes榜,
     *            <p>
     *            "9": Hit FM Top榜,
     *            <p>
     *            "10": 日本Oricon周榜
     *            <p>
     *            "11": 韩国Melon排行榜周榜,
     *            <p>
     *            "12": 韩国Mnet排行榜周榜,
     *            <p>
     *            "13": 韩国Melon原声周榜,
     *            <p>
     *            "14": 中国TOP排行榜(港台榜),
     *            <p>
     *            "15": 中国TOP排行榜(内地榜)
     *            <p>
     *            "16": 香港电台中文歌曲龙虎榜,
     *            <p>
     *            "17": 华语金曲榜,
     *            <p>
     *            "18": 中国嘻哈榜,
     *            <p>
     *            "19": 法国 NRJ EuroHot 30周榜,
     *            <p>
     *            "20": 台湾Hito排行榜,
     *            <p>
     *            "21": Beatport全球电子舞曲榜,
     *            <p>
     *            "22": 云音乐ACG音乐榜,
     *            <p>
     *            "23": 云音乐说唱榜
     *            <p>
     *            "24": 云音乐古典音乐榜
     *            <p>
     *            "25": 云音乐电音榜
     *            <p>
     *            "26": 抖音排行榜
     *            <p>
     *            "27": 新声榜
     *            <p>
     *            "28": 云音乐韩语榜
     *            <p>
     *            "29": 英国Q杂志中文版周榜
     *            <p>
     *            "30": 电竞音乐榜
     *            <p>
     *            "31": 云音乐欧美热歌榜
     *            <p>
     *            "32": 云音乐欧美新歌榜
     *            <p>
     *            "33": 说唱TOP榜
     */
    @Override
    public void getRankingList(String idx) {

        Observable<RankingListEntity> observable = mApiService.getRankingList(idx);
        addSubscription(observable, new SubscriberCallBack<>(new ApiCallback<RankingListEntity>() {
            @Override
            public void onSuccess(RankingListEntity model) {
                LogUtil.e(new Gson().toJson(model));
                if (model.getCode() == Constants.SUCCESS_CODE) {
                    if (mView==null){
                        LogUtil.e("mView 为空");
                    }else {
                        mView.getRankingListSuccess(model);
                    }
                } else {
                    ToastUtil.shortShow("获取数据失败");
                }
            }

            @Override
            public void onFailure(String msg) {
                mView.showToast(msg);
            }
        }));
    }
}
